package com.stock.mapper;

import com.stock.pojo.domain.Stock4EvrDayDomain;
import com.stock.pojo.domain.Stock4MinuteDomain;
import com.stock.pojo.entity.StockRtInfo;
import io.swagger.annotations.ApiModel;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * @author AA173
 * @description 针对表【stock_rt_info(个股详情信息表)】的数据库操作Mapper
 * @createDate 2024-10-24 08:49:11
 * @Entity com.stock.pojo.entity.StockRtInfo
 */
@ApiModel(description = "针对表【stock_rt_info(个股详情信息表)】的数据库操作Mapper")
public interface StockRtInfoMapper {

    int deleteByPrimaryKey(Long id);

    int insert(StockRtInfo record);

    int insertSelective(StockRtInfo record);

    StockRtInfo selectByPrimaryKey(Long id);

    int updateByPrimaryKeySelective(StockRtInfo record);

    int updateByPrimaryKey(StockRtInfo record);

    //统计最新涨停跌停数据
    List<Map> getStockUpdownCount(@Param("openDate") Date openDate, @Param("endDate") Date endDate, @Param("flag") int flag);

    //统计当前时间下（精确到分钟），A股在各个涨跌区间股票的数量
    List<Map> getStockUpDown(@Param("curDate") Date curDate);

    //查询单个个股的分时行情数据，也就是统计指定股票T日每分钟的交易数据
    List<Stock4MinuteDomain> getStockInfoByCodeAndDate(@Param("stockCode") String stockCode,@Param("openDate") Date openDate,@Param("endDate") Date endDate);

    //单个个股日K 数据查询 ，可以根据时间区间查询数日的K线数据
    List<Stock4EvrDayDomain> getStockInfo4EvrDay(@Param("stockCode") String stockCode, @Param("startTime") Date startTime, @Param("endTime") Date endTime);

    //将最新采集的个股数据批量插入数据库中
    int insertBatch(@Param("infos") List<StockRtInfo> infos);
}
